#include <iostream>
#include <queue>
using namespace std;

struct num{
	int a;
	bool operator < (const num s)const{
		return a>s.a;
	}
};


int main(){
	int n,m,ans=-1,card1=0,card2=0,card3=0;
	cin>>n>>m;
	num k[n];
	priority_queue<num> q;
	for(int i=0;i<n;i++){
		cin>>k[i].a;
		q.push(k[i]);
	}
	while(!q.empty()  &&  m > 0){
		ans++;
		num l;
		l = q.top();
		while(l.a-ans*3 <= 3  &&  !q.empty()){
			if(l.a-ans*3 == 3){
				card3++;
				m -= 3;
			}
			else if(l.a-ans*3 == 2){
				card2++;
				m -= 2;
			}
			else{
				card1++;
				m -= 1;
			}
			q.pop();
			l = q.top();
		}
	}
	if(m > 0){
		cout<<"Human Cannot Win Dog";
		return 0;
	}
	if(ans == -1){
		cout<<0<<" "<<0;
		return 0;
	}
	for(int i=0;i<card3;i++){
		if(m+3 <= 0){
			card3--;
			m += 3;
		}
	}
	for(int i=0;i<card1;i++){
		if(m+1 <= 0){
			card1--;
			m += 1;
		}
		else
			break;
	}
	for(int i=0;i<card2;i++){
		if(m+2 <= 0){
			card2--;
			m += 2;
		}
		else
			break;
	}
	cout<<ans<<" "<<(ans+card3*4+card2+card1);
	return 0;
}
